Many events, such as a natural disaster or human-induced activity, may interrupt an organization's technology infrastructure. Often organizations have policies and procedures to prepare for recovery of data or continuation of critical technology infrastructure. An organization's technology infrastructure may also be referred to as its information technology (IT) environment. An organization's IT environment may include its computers, network connections, servers, hardware, software, operating systems, databases, and application layers. For example, recovering an IT environment may include a variety of tasks such as rebuilding hardware (HW), operating systems (OS), databases, peripheral computing devices, and application layers at a time of test (ATOT) or at a time of disaster (ATOD).
Often the technology environment of an organization comprises computing devices with dissimilar hardware and software components (e.g., heterogeneous environments). For example, an organization may utilize computers with different types of processors to match different processing demands across the organization. Additionally, the IT environment of an organization may be comprised of computers with different operating systems. For example, an organization may be divided into groups, and each group may be comprised of computers with specific needs. The groups of computers may be connected via a local area network (LAN). Each group of computers may also include one or more server computers that run a network operating system, for example, to provide network services to other computers on the LAN. Computers within a group may utilize the same or different operating systems, for example, depending on the functions and/or requirements of each computer's end user.
Often a hardware device uses a device driver or software driver to allow a computer program to interact with the hardware device. For example, a device driver may act as a translator between a hardware device and the applications or operating systems that use the hardware device. A driver typically communicates with a hardware device through a computer bus or communications subsystem coupled to the hardware. A driver may send commands to the hardware device, and a hardware device may send data to the driver. Many drivers are specific to an operating system, and may also depend on the hardware. Thus, multiple device drivers many be used to recover and/or build an IT environment with dissimilar hardware and/or software.
Existing approaches to delivering recovery and continuation services lack efficiency. For example, existing approaches may require burdensome user involvement in order to install different operating systems on different hardware environments. Additionally, some existing approaches do not deploy software to target machines (e.g., computers and/or servers) in an efficient manner.